<?php
namespace app\admin\controller;


class File extends Base {
    public function index(){
        var_dump(ROOT_PATH);
        $dir = dir('D:/var/www/deblog/public/home');

        var_dump($dir);
        
        //输出当前运行文件的目录
        var_dump(getcwd());

        //改变目前的目录
        chdir('D:/var/www/deblog');

        //改变根目录
        // chroot('D:/var');

        //打开目录的句柄；
        
        

        //关闭目录
        closedir($dir->handle);
        
        var_dump(getcwd());
        // $dir->chdir('D:\var\www');
        // $dir.close();
    }

    public function t(){
        $path = dirname('index');
        var_dump($path);
    }

    public function getfile(){
        $dir = getcwd();
        $path = dirname($dir)."/1.txt";
        // $content  = file($path);
        // $content = file('http://www.runoob.com/php/php-tutorial.html',FILE_IGNORE_NEW_LINES);
        dump($dir);
        //用fopen函数创建文件；
        // $handle = fopen('1.txt','w');

        //读取文件，指针在头部；
        $handle = fopen('1.txt','x');

        //写入文件
        $bool = fwrite($handle,'3.这是我要添加的内容');
        fclose($handle);
        //打开读取文件
        $content = file('1.txt');
        
        var_dump($content);
    }

    public function setconfig(){
        //创建一个本地的备份config文件
        //文件名
        
        $temp_config_name = "temp_config.php";
        // 斜杠
        $tag = '/';
        $root = dirname(getcwd());
        $app_path = $root.dirname('/').'application';
        $temp_config_path = $app_path.$tag.$temp_config_name;


        //读取文件，用于测试
        $config_arr = file($app_path.$tag.'config.php');
        
        //复制文件
        // if(file_exists($app_path)){
        //     $file_path = $app_path.$tag.$temp_config_name;
        //     $handle = fopen($app_path.$tag.$temp_config_name,'w');
        //     foreach($config_arr as $value){
        //         fwrite($handle,$value);
        //     }
        // }else{
        //     echo "error";
        // }
        $config = array(
            'WEB_NAME' => 'T博客',
            'WEB_AGE' => '2333',
            'WEB_TITLE' => '博客管理系统'
        );
        
        $value = include $temp_config_path ;
        $res = array_merge($value, $config);
        var_dump($res);
        // $result = print_r($value);
        file_put_contents($temp_config_path,var_export($value,true));

    }

    function setcfg($pat, $rep){
        /**
         * 原理就是 打开config配置文件 然后使用正则查找替换 然后在保存文件.
         * 传递的参数为2个数组 前面的为配置 后面的为数值.  正则的匹配为单引号  如果你的是分号 请自行修改为分号
         * $pat[0] = 参数前缀;  例:   default_return_type
         $rep[0] = 要替换的内容;    例:  json
        */
        if (is_array($pat) and is_array($rep)) {
            for ($i = 0; $i < count($pat); $i++) {
                $pats[$i] = '/\'' . $pat[$i] . '\'(.*?),/';
                $reps[$i] = "'". $pat[$i]. "'". "=>" . "'".$rep[$i] ."',";
            }
            $fileurl = APP_PATH . "config.php";
            $string = file_get_contents($fileurl); //加载配置文件
            $string = preg_replace($pats, $reps, $string); // 正则查找然后替换
            file_put_contents($fileurl, $string); // 写入配置文件
            return true;
        } else {
            return flase;
        }
    }

    public function setconf(){
        //新建一个临时空的config文件
        // fopen(ROOT_PATH.'tmp_conf.php','w');

        //读取配置文件；
        $config_str = file_get_contents(ROOT_PATH.'/tmp_conf.php');

        //用获取到的值替换掉原来的值
        $db_host = "localhost";
        $conf_str = str_replace('#DB_HOST#', $db_host, $config_str);

        //写入配置文件；
        @file_put_contents(ROOT_PATH.'/config.php',$conf_str);
        //读取文件
        // var_dump($config_str);
    }


    public function setcon(){
        
    }

    protected function update_config($new_config, $config_file = '') {
        !is_file($config_file) && $config_file = CONF_PATH . '/config.php';

        if (is_writable($config_file)) {
            $config = require $config_file;

            $config = array_merge($config, $new_config);
            file_put_contents($config_file, "<?php \nreturn " . stripslashes(var_export($config, true)) . ";", LOCK_EX);
            @unlink(RUNTIME_FILE);
            return true;
        } else {
            return false;
        }
    }        
    
}
